package com.cskaoyan.javse.oop3._2inner._6anonymous._0introduction;

/**
 * @description: 匿名内部类语法的细节
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 匿名内部类语法中的小括号可以填入参数表示调用某个构造方法,但是注意只有类有构造器
 * 接口没有构造方法
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        //调用B类的有参构造 创建B的子类对象
        System.out.println(new B(20) {
        }.b);

        //调用AbstractB类的有参构造 创建AbstractB的子类对象
        System.out.println(new AbstractB(100) {
        }.b);

        new IA(){};
    }
}

interface IA{
    int b = 10;

}
class B {
    int b;

    public B() {
    }

    public B(int b) {
        this.b = b;
    }
}
abstract class AbstractB{
    int b;

    public AbstractB() {
    }

    public AbstractB(int b) {
        this.b = b;
    }
}
